/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package graphic;

import java.io.File;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
import javax.swing.JButton;
import javax.swing.JPanel;

/**
 *
 * @author maru
 */
public class StartPanel extends JPanel {
    private JButton nuevoJuegoBut;
    private JButton cargar;
    private JButton verPuntajesBut;
    private JButton salirBut;
    private StartFrame frame;
    private Set<File> archLevels;
    
    public StartPanel(StartFrame frame) {
    	this.frame=frame;
    	
    	setLayout(null);
        
        nuevoJuegoBut = new JButton("Nuevo Juego");
        nuevoJuegoBut.setBounds( 100, 50, 200, 50);
        add(nuevoJuegoBut);

        cargar = new JButton("Cargar Juego Guardado");
        cargar.setBounds( 100, 125, 200, 50);
        add(cargar);
        
        verPuntajesBut = new JButton("Ver Mejores Puntajes");
        verPuntajesBut.setBounds( 100, 200, 200, 50);
        add(verPuntajesBut);

        salirBut = new JButton("Salir");
        salirBut.setBounds( 100, 275, 200, 50);
        add(salirBut);
        
        updateUI();
        nuevoJuegoBut.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
            nuevoJuegoButActionPerformed();
            }
        });
        verPuntajesBut.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
            verPuntajesButActionPerformed();
            }
        });
        cargar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
            cargarActionPerformed();
            }
        });
        salirBut.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
            salirButActionPerformed();
            }
        });
    }
    public void nuevoJuegoButActionPerformed() {
        StartGamePanel stP = new StartGamePanel(this.frame, this);
        stP.setBounds(1, 1, 600, 600);
        this.frame.add(stP);
        this.setVisible(false);
        stP.setVisible(true);
    }
    public void cargarActionPerformed() {
		File arch= new File(java.lang.System.getProperty("user.dir") + "/levels/");
		File aux[]=arch.listFiles();
		archLevels= new TreeSet<File>(new Comparator<File>(){
			public int compare(File f1, File f2) {
				return f1.getName().compareTo(f2.getName());
			}
		});
		for(File archivo: aux)
			if(archivo.getName().contains(".txt"))
				archLevels.add(archivo); 

    	GamePanel gPanel = new GamePanel(this.frame, this, archLevels, "", true);
        this.frame.add(gPanel);
        this.setVisible(false);
        gPanel.setVisible(true);
    }

    private void verPuntajesButActionPerformed() {
        ScorePanel scorePanel = new ScorePanel(this.frame, this);
        scorePanel.setBounds(1, 1, 600, 600);
        this.frame.add(scorePanel);
        this.setVisible(false);
        scorePanel.setVisible(true);
    }

    private void salirButActionPerformed() {
        System.exit(0);
    }
}
